package com.example.springboot.payDemo;

import org.springframework.beans.factory.InitializingBean;

/**
 * 策略模式的抽象类-模版设计模式
 * 避免了只使用实现类实现接口，子类重复实现相同的算法，a实现类不需要实现b方法，b实现类也不需要实现a方法的情况
 * 抛异常：在抽象类中定义方法，但暂时不实现它们，通过抛出 UnsupportedOperationException 来表示这些方法在当前上下文中不可用。
 * 1、明确标识方法未实现：通过抛出 UnsupportedOperationException，开发者可以明确地告诉使用该类的其他开发者，这个方法在当前类中没有实现，调用它会抛出异常。
 * 2、防止误用：如果不抛出异常，调用未实现的方法可能会导致不可预期的行为或错误。抛出异常可以立即中断程序执行，避免更深层次的问题。
 * 3、灵活性：在抽象类或接口中定义方法，但暂时不实现它们，通过抛出异常来表示这些方法在当前上下文中不可用，这为子类提供了实现这些方法的灵活性。
 */
public abstract class AbstractPayHandler  implements InitializingBean {

    public void AAA(String name){
        throw new UnsupportedOperationException("Not supported method AAA");
    }

    public String BBB(String name) {
        throw new UnsupportedOperationException("Not supported method BBB");
    }
}
